/**
 * 配件管理-配件查询
 */
var queryFixingSearch = function() {
	var queryFixingFieldSet = new Ext.form.FieldSet({
		id : 'queryFixingFieldSet',
		title : '查询条件',
		collapsible : true,// 可折叠
		buttonAlign : 'center',
		keys : [{
					key : 13, // 13代表回车
					fn : queryFixing,
					scope : this
				}],
		items : [{
					layout : 'column',
					border : false,
					items : [{
								columnWidth : .25,
								layout : 'form',
								border : false,
								items : [{
											xtype : 'textfield',
											anchor : '100%',
											fieldLabel : '配件名称',
											name : "fixingName",
											id : "fixingManager_fixingName"
										},{
											xtype : 'dataDictionaryCmb',
											anchor : '100%',
											fieldLabel : '配件类型',
											hiddenName : "fixingType",
											editable : false,
											autoLoad : false,
											existall : true,
											defaultFirstRow : 1,
											dictionaryType : PmsUtil.fixing_type
										}]
							}, {
								columnWidth : .25,
								layout : 'form',
								border : false,
								items : [{
											xtype : 'dataDictionaryCmb',
											anchor : '100%',
											fieldLabel : '配件单位',
											hiddenName : "fixingUnits",
											editable : false,
											autoLoad : false,
											existall : true,
											defaultFirstRow : 1,
											dictionaryType : PmsUtil.fixing_units
										},{

								columnWidth : .25,
								layout : 'form',
								border : false,
								items : [{
									layout : 'column',
									border : false,
									items : [{
												text : '查询',
												xtype : 'button',
												width : 80,
												handler : function() {
													queryFixing();
												},
												style : {
													marginLeft : "100px",
													marginRight : "10px"
												}
											}, {
												text : '重置',
												xtype : 'button',
												width : 80,
												handler : function() {
													Ext.getCmp('queryFixingForm').getForm().reset();
												}
											}]
								}]

							}]
							}, {
								columnWidth : .25,
								layout : 'form',
								border : false,
								items : [{
											xtype : 'dataDictionaryCmb',
											anchor : '100%',
											fieldLabel : '是否可用',
											hiddenName : 'isEnable',
											editable : false,
											autoLoad : false,
											existall : true,
											defaultFirstRow : 1,
											dictionaryType : PmsUtil.fixing_is_useable
										}]
							}, {
								columnWidth : .25,
								layout : 'form',
								border : false,
								items : [{
											xtype : 'dataDictionaryCmb',
											anchor : '100%',
											fieldLabel : '是否可选',
											hiddenName : 'isOptional',
											editable : false,
											autoLoad : false,
											existall : true,
											defaultFirstRow : 1,
											dictionaryType : PmsUtil.fixing_is_optional
										}]
							}]
				}]
	});
	fieldSetListeners(['queryFixingFieldSet', 'queryFixingForm',
					'fixingManagerGrid'], [0.16, 0.84]);

	var queryFixingForm = new Ext.form.FormPanel({
				id : 'queryFixingForm',
				anchor : '100% 16%',
				frame : true,
				labelAlign : 'right',
				bodyBorder : false,
				items : [queryFixingFieldSet]
			});
	return queryFixingForm;
};

/**
 * grids
 */
var fixingManagerGrid = function() {
	var fixingManagerSm = new Ext.grid.CheckboxSelectionModel();// 创建选择模式对象
	// 定义表的每列（对应表头信息）
	var fixingManagerCm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),
			{
				dataIndex : "id",
				header : "配件编号",
				sortable : true,
				width : 70
			}, {
				dataIndex : "fixingCode",
				header : "配编码",
				sortable : true,
				width : 100
			}, {
				dataIndex : "fixingName",
				header : "配件名称",
				sortable : true,
				width : 140,
				renderer : function(value, meta, record) {
					if (value) {
						meta.attr = 'ext:qtitle="配件名称:" ext:qtip="' + value
								+ '"' + 'style="white-space:normal;"';
						return value;
					}
				}
			}, {
				dataIndex : "fixingPicture",
				header : "配件展示图",
				sortable : true,
				width : 100,
				renderer : function(value) {
					return PmsUtil.ShowPicture(value);
				}
			}, {
				dataIndex : "fixingPrice",
				header : "配件价格",
				sortable : true,
				width : 70,
				renderer : function(value) {
					return PmsUtil.Price(value);
				}
			}, {
				dataIndex : "fixingUnits",
				header : "配件单位",
				sortable : true,
				width : 70
			}, {
				dataIndex : "fixingMultiple",
				header : "配件单位倍数",
				sortable : true,
				width : 90
			},{
				dataIndex : "fixingType",
				header : "配件类型",
				sortable : true,
				width : 70,
				renderer:function(value){
					return PmsUtil.FixingType(value);
				}
			},{
				dataIndex : "describes",
				header : "描述",
				sortable : true,
				width : 70
			}, {
				dataIndex : "isOptional",
				header : "是否可选",
				sortable : true,
				width : 70,
				renderer : function(value) {
					if(value == '0'){
						return '<div style="color:red;">'+PmsUtil.IsOptional(value)+'</div>'
					}
					return PmsUtil.IsOptional(value);
				}
			}, {
				dataIndex : "optionalRange",
				header : "最大选择范围",
				sortable : true,
				width : 90
			}, {
				dataIndex : "isEnable",
				header : "是否可用",
				sortable : true,
				width : 70,
				renderer : function(value) {
					return PmsUtil.FixingIsEnable(value);
				}
			}, {
				dataIndex : "sort",
				header : "排序",
				sortable : true,
				width : 60
			}, {
				dataIndex : "createdDate",
				header : "创建时间",
				sortable : true,
				width : 130
			}, {
				dataIndex : "createdName",
				header : "创建人",
				sortable : true,
				width : 70
			}, {
				dataIndex : "updatedDate",
				header : "修改时间",
				sortable : true,
				width : 130
			}, {
				dataIndex : "updatedName",
				header : "修改人",
				sortable : true,
				width : 70
			}, {
				header : "管理",
				width : 200,
				dataIndex : "id",
				sortable : false,
				renderer : function(j, i, g, m, h) {
					var l = g.data.id;
					var isEnable = g.data.isEnable;
					var isOptional = g.data.isOptional;
					var k = "";
					if (isGranted("fixingManager_修改配件")) {
						if (isEnable == 0) {
							k += '&nbsp;&nbsp;<a href="#" onclick="updateFixing('
									+ l + ');" >修改</a>';
						}
					}
					if (isGranted("fixingManager_启用配件")) {
						if (isEnable == 1) {
							k += '&nbsp;&nbsp;<a href="#" onclick="updIsEnable('
									+ l
									+ ','
									+ "0"
									+ ','
									+ "'启用'"
									+ ')\" >启用</a>';
						}
					}
					if (isGranted("fixingManager_禁用配件")) {
						if (isEnable == 0) {
							k += '&nbsp;&nbsp;<a href="#" onclick="updIsEnable('
									+ l
									+ ','
									+ "1"
									+ ','
									+ "'禁用'"
									+ ')\" >禁用</a>';
						}

					}

					if (isGranted("fixingManager_可选")) {
						if (isOptional == 1) {
							k += '&nbsp;&nbsp;<a href="#" onclick="updateIsOptional('
									+ l
									+ ','
									+ "0"
									+ ','
									+ "'可选'"
									+ ')\" >可选</a>';
						}
					}
					if (isGranted("fixingManager_不可选")) {
						if (isOptional == 0) {
							k += '&nbsp;&nbsp;<a href="#" onclick="updateIsOptional('
									+ l
									+ ','
									+ "1"
									+ ','
									+ "'不可选'"
									+ ')\" >不可选</a>';
						}

					}
					return k;
				}
			}]);

	// 定义分析器
	var fixingManagerReader = new Ext.data.JsonReader({
				totalProperty : "totalCount",
				root : "list",
				fields : [{
							name : "id"
						}, {
							name : "fixingName"
						}, {
							name : "fixingCode"
						}, {
							name : "fixingPicture"
						}, {
							name : "fixingPrice"
						}, {
							name : "fixingUnits"
						}, {
							name : "describes"
						}, {
							name : "isOptional"
						}, {
							name : "optionalRange"
						}, {
							name : "isEnable"
						}, {
							name : "sort"
						}, {
							name : "createdDate"
						}, {
							name : "createdName"
						}, {
							name : "updatedDate"
						}, {
							name : "updatedName"
						}, {
							name : "fixingMultiple"
						}, {
							name : "fixingType"
						}]
			});

	// 取数据store
	var fixingViewStore = new Ext.data.Store({
				autoLoad : true,// 要加载数据必须设置为true
				proxy : new Ext.data.HttpProxy({
							url : __ctxPath + "/fixingManager/queryFixings"
						}),
				remoteSort : false,
				baseParams : {
					start : 0,
					limit : 25
				},
				listeners : {
					beforeload : {
						fn : function(thiz, options) {
							Ext.apply(thiz.baseParams, Ext
											.getCmp('queryFixingForm')
											.getForm().getValues());
						}
					}
				},
				reader : fixingManagerReader
			});

	// 定义grid的toolbar
	var fixingTb = new Ext.Toolbar({
				id : "fixingTb",
				height : 25,
				items : []
			});
	fixingTb.add(new Ext.scm.Button({
					text : "新建配件",
					width : 80,
					iconCls : "btn-add",
					hsValue : 'fixingManager_新建配件',
					pressed : true,
					listeners : {
						"click" : function() {
							addFixing();
						}
					}
				}));
	fixingTb.add(new Ext.Toolbar.Spacer());
	fixingTb.add(new Ext.scm.Button({
				text : "刷 新",
				iconCls : "btn-refresh",
				width : 80,
				hsValue : 'fixingManager_刷新',
				pressed : true,
				handler : function() {
					queryFixing();
				}
			}));

	var fixingManagerGrid = new Ext.grid.GridPanel({
				id : 'fixingManagerGrid',
				store : fixingViewStore,
				cm : fixingManagerCm,
				sm : fixingManagerSm,
				autoScroll : true,
				loadMask : true,
				stripeRows : true,
				columnLines : true,
				loadMask : {
					msg : "正在加载数据，请稍侯……"
				},
				viewConfig : {
					emptyText : '没有您想要的数据!'
				},
				anchor : '100% 84%',
				frame : true,
				tbar : fixingTb,
				bbar : new PG.PagingBar({
							store : fixingViewStore
						})
			});
	return fixingManagerGrid;
};

// 查询
function queryFixing() {
	PmsUtil.StringTrim("fixingManager_fixingName");
	var grid = Ext.getCmp("fixingManagerGrid");
	var form = Ext.getCmp("queryFixingForm");
	if (form.getForm().isValid()) {
		grid.getStore().load();
	}
}

// 添加配件
function addFixing() {
	try {
		addOrUpdFixing(null, "添加配件").show();
	} catch (Error) {
		Ext.Loader.load([__ctxPath + '/js/fixing/fixingForm.js'], function() {
					addOrUpdFixing(null, "添加配件").show();
				});
	}
}

// 修改配件
function updateFixing(fixingId) {
	try {
		addOrUpdFixing(fixingId, "添加配件").show();
	} catch (Error) {
		Ext.Loader.load([__ctxPath + '/js/fixing/fixingForm.js'], function() {
					addOrUpdFixing(fixingId).show();
				});
	}
}

// 可用/不可用
function updIsEnable(fixingId, isEnable, massege) {
	Ext.Msg.confirm("信息确认", "是否" + massege + "该配件?", function(btn) {
				if (btn == "yes") {
					var optionMask = new Ext.LoadMask(Ext.getBody(), {
								msg : "正在处理,请稍后..."
							});
					optionMask.show();
					Ext.Ajax.request({
								url : __ctxPath
										+ "/fixingManager/updateIsEnableById",
								params : {
									fixingId : fixingId,
									isEnable : isEnable
								},
								method : "post",
								success : function(response) {
									optionMask.hide();
									var jsonData = Ext.util.JSON
											.decode(response.responseText);
									if (jsonData.success) {
										Ext.MessageBox.show({
													title : "信息提示",
													msg : jsonData.data,
													buttons : Ext.MessageBox.OK,
													icon : Ext.MessageBox.INFO
												});
										queryFixing();
									} else {
										Ext.MessageBox.show({
													title : "错误提示",
													msg : jsonData.data,
													buttons : Ext.MessageBox.OK,
													icon : Ext.MessageBox.ERROR
												});
									}
								},
								failure : function(response) {
									optionMask.hide();
									Ext.MessageBox.show({
												title : "操作信息",
												msg : "服务器请求异常,请稍后再试!",
												buttons : Ext.MessageBox.OK,
												icon : Ext.MessageBox.ERROR
											});
								}
							});
				}
			});
}

// 可选/不可选
function updateIsOptional(fixingId, isOptional, massege) {
	Ext.Msg.confirm("信息确认", "是否将该配件设为" + massege + "?", function(btn) {
				if (btn == "yes") {
					var optionMask = new Ext.LoadMask(Ext.getBody(), {
								msg : "正在处理,请稍后..."
							});
					optionMask.show();
					Ext.Ajax.request({
								url : __ctxPath
										+ "/fixingManager/updIsOptionalById",
								params : {
									fixingId : fixingId,
									isOptional : isOptional
								},
								method : "post",
								success : function(response) {
									optionMask.hide();
									var jsonData = Ext.util.JSON
											.decode(response.responseText);
									if (jsonData.success) {
										Ext.MessageBox.show({
													title : "信息提示",
													msg : jsonData.data,
													buttons : Ext.MessageBox.OK,
													icon : Ext.MessageBox.INFO
												});
										queryFixing();
									} else {
										Ext.MessageBox.show({
													title : "错误提示",
													msg : jsonData.data,
													buttons : Ext.MessageBox.OK,
													icon : Ext.MessageBox.ERROR
												});
									}
								},
								failure : function(response) {
									optionMask.hide();
									Ext.MessageBox.show({
												title : "操作信息",
												msg : "服务器请求异常,请稍后再试!",
												buttons : Ext.MessageBox.OK,
												icon : Ext.MessageBox.ERROR
											});
								}
							});
				}
			});
}

Ext.getCmp("centerTabPanel").getActiveTab().add(queryFixingSearch(),
		fixingManagerGrid());
Ext.getCmp("centerTabPanel").getActiveTab().doLayout();
